package com.coocaa.typhoon.api.config.kafka;

import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;

/**
 * @author tangminghong
 * @date 2020-04-10 16:01
 */
@Component
@Data
@ConfigurationProperties(prefix = "kafka")
public class KafkaProducerProperties {
    /**
     * kafka服务地址
     */
    private String bootstrapServers;
    /**
     * 生产者可重试次数
     */
    private String retries;
    /**
     * 默认是16k。如果 batch 设置太小，会导致频繁网络请求，吞吐量下降；如果 batch 太大，会导致一条消息需要等待很久才能被发送出去，增加网络延时
     */
    private String batchSize;
    /**
     * 发送消息的缓冲区大小，默认值是 32m
     */
    private String bufferMemory;
    /**
     * 这个值默认是0，意思就是消息必须立即被发送。一般设置一个 5-100毫秒。如果 linger.ms 设置的太小，会导致频繁网络请求，吞吐量下降；如果 linger.ms 太长，会导致一条消息需要等待很久才能被发送出去，增加网络延时
     */
    private String lingerMs;
}
